home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Printer / aa_Intel_Only / lprManager.0.01 / lprManager / AppController.m < prev    next >
Text File  |  1995-09-17  |  2KB  |  77 lines

  1. //////////////////////////////////////////////////////////////////////////
  2. //
  3. //     lprManager.app
  4. //    
  5. //        FileName : AppController.m
  6. //
  7. //        Written by zander@cnext.crec.mipt.ru (Aleksey Sudakov)
  8. //     Sept. 13,1995
  9. //        Last Modified Sept. 13,1995
  10. //
  11.  
  12. #import "AppController.h"
  13. #import <misckit/MiscShell.h>
  14.  
  15. @implementation AppController
  16. + initialize
  17. {
  18.     static NXDefaultsVector IRCDefaults =
  19.         {
  20.             {"Server",    "samsung"},
  21.             {NULL,    NULL}
  22.         };
  23.     NXRegisterDefaults("lprManager", IRCDefaults);
  24.     return self;
  25. }
  26. - appDidInit:(Application *)sender
  27. {
  28.     [[NXApp appListener] setServicesDelegate:self];
  29.     return self;
  30. }
  31. /*
  32. - info:sender // bring up the info panel, obviously
  33. {
  34.     return [infoControl infoPanel];
  35. }
  36. */
  37. - showPrefs:sender
  38. {
  39.     if(!prefController)
  40.         [NXApp loadNibSection:"Preferences.nib" owner:self];
  41.     [[prefController window] makeKeyAndOrderFront:sender];
  42.     return self;
  43. }
  44.  
  45. - printOnLpr:pasteboard userData:(const char*)userData error:(char**)msg
  46. {
  47.     const NXAtom* types;
  48.     char* text;
  49.     id shell;
  50.     int length;
  51.  
  52.     for(types = [pasteboard types]; *types; types++)
  53.         if( *types == NXAsciiPboardType )    break;
  54.     if(  *types == 0 )
  55.         {
  56.          *msg = "Could not print selection";
  57.          return nil;
  58.         }
  59.     if( [pasteboard readType:NXAsciiPboardType
  60.             data:&text length:&length] == nil )
  61.         {
  62.          *msg = "Could not read selection";
  63.          return nil;
  64.         }
  65.     shell = [[MiscShell alloc] initWithCommand:
  66.         [[[[[[MiscString newWithString:"echo \""]
  67.         concatenate:[MiscString newWithString:text]]
  68.         concatenate:[MiscString newWithString:"\" | lpr -P"]]
  69.         concatenate:[MiscString newWithString:
  70.             NXGetDefaultValue("lprManager","Server")]]
  71.         concatenate:[MiscString newWithString:"\n"]]
  72.         stringValue]];
  73.     vm_deallocate(task_self(), (vm_address_t)text, length);
  74.     return self;
  75. }
  76. @end
  77.